package org.magnerfuller.imtoolkit.server.session.medium;

import java.io.*;

/**
 * The abstract class SessionMedium provides the interface needed
 * for session-oriented communication to take place using streams.
 * 
 * This class should be extended as part of any protocol implementation.
 *
 */
public abstract class SessionMedium {
	
  /**
   * Get the input stream for communication.
   * 
   * @return the input stream
   * @throws IOException
   */
	public abstract InputStream getInputStream() throws IOException;
	
	/**
	 * Get the output stream for communication.
	 * 
	 * @return the output stream
	 * @throws IOException
	 */
	public abstract OutputStream getOutputStream() throws IOException;
	
	/**
	 * Get the name of the module within which this medium resides.
	 * This might soon be deprecated.
	 * 
	 * @return the module name
	 */
	public abstract String getModuleName();

}//SessionMedium
